1. Technical Field
The present invention relates to code maintainability within an object oriented environment, and more specifically, the present invention relates to creating instances of code, which may be executable, based on an apparent database of situations that may be applicable to the function of a program code of a client.
2. Description of Related Art
Dynamic software systems, such as those commonly used in object oriented programming, may need to deal with fairly ad hoc arrangements of hardware and operating systems, among other things. Thus, a well-defined class of objects may accomplish essentially the same function in instances specific to each of several situations. A specialization is an implementation of a software component designed for a specific, focused case or situation. For example, for a class (the general) that accomplishes a rendition of text in a string, there may be a situation where the only display available is a graphical user interface with an active window allocated to producing text. Another situation may be a simple line-based terminal. Still another situation could be a speaker connected to a voice synthesis device.
Under such circumstances, to make the class able to handle rendering the string under all situations, the existing methods would, for example, provide a number of alternative tracts of code within interpreted or machine executable software. This existing method created the problem that the complexity of program code became rather cluttered, and often lead to duplicating code throughout the software system. Often, this would increase the costs of maintaining such code, e.g. as would become necessary when a new form factor for display emerged among manufactured devices.
Thus it became evident that there is a need for a software system to identify a software component in a flexible manner, without unnecessary redundancy of code.